<?php

/**
  * Корзина покупателя, хранящаяся в сессиях
  * @author  Холодий Андрей
  * @version 1.1
  * @copyright Copyright 2003, РБК СОФТ
  * @package E-shop
  */

class cart {
    
    var $items = array();     
 
    /************************ addItem ******************************************/
    function addItem (
    					$id, 			// Идентификатор товара в БД
					  	$qty, 			// Кол-во, заказываемого товара
					  	$status,		// Статус товара в корзине
					  	$comments = '' 	// Комментарии пользователя
					 ) { 
	/*
		Добавление товара в корзину.
	*/        
       	$this -> items[] = array('id' => $id, 'quantity' => $qty,  'status' => $status, 'comments' => $comments);
    }

    /************************ removeItem ******************************************/
    function removeItem ($id) { // Идентификатор товара в БД
	/*
		Удаление товара из корзины.
	*/        
    	$tmp = array();
    	foreach ($this -> items as $item)
    		if ($item['id'] != $id) $tmp[] = $item;
 
        $this -> items = $tmp;
    }

    /************************ countItems ******************************************/
    function countItems ($status) { 
	/*
		Возврашает число товаров с заданным статусом.
	*/        
    	$quantity = 0;
    	foreach ($this -> items as $item)
    		if ($item['status'] == $status) $quantity += $item['quantity'] ;

        return $quantity;
    }

    /************************ changeStatusItem ******************************************/
    function changeStatusItem (
    							$id, 	// Идентификатор товара в БД
    						   	$status	// Статус товара
    						  ) { 
	/*
		Меняет статус товара в корзине.
	*/        
    	for ($i = 0; $i < count($this -> items); $i++) 
    		if ($this -> items[$i]['id'] == $id) {
    		
    			$this -> items[$i]['status'] = $status;
    			if ($status) $this -> items[$i]['quantity'] = 1;
    		}
	}
}

?>